package com.broada.apm.indicator.api;

import java.util.List;

import com.broada.apm.model.ConfigItem;
import com.broada.apm.model.Filter;
import com.broada.apm.model.FilterRule;

public interface ConfigItemService {

	/**
	 *	保存配置信息，如果配置信息不存在则insert，如果配置信息存在则update
	 * @param configItem
	 */
	public void saveConfigItem(ConfigItem configItem);
	
	/**
	 * 更新配置信息
	 * @param configItem
	 */
	public void updateConfigItem(ConfigItem configItem);
	
	/**
	 * 删除配置信息
	 * @param configItem
	 */
	public ConfigItem deleteConfigItem(String key);
	
	/**
	 * 根据key查询配置信息
	 * @param key
	 * @return
	 */
	public ConfigItem getConfigItem(String key);

	/**
	 * 根据key模糊查询配置信息
	 * @param key
	 * @return
	 */
	public List<ConfigItem> getConfigItemLikeKey(String key);
	
	/**
	 * 添加数据包过滤规则
	 * @param filterList
	 */
	public void saveFilter(List<Filter> filterList);
	
	/**
	 * 添加数据包过滤规则
	 * @param filterList
	 */
	public void saveFilter(Filter filter);
	
	/**
	 * 删除数据包过滤规则
	 * @param filterList
	 */
	public void deleteFilter(String analyzerId);
	
	/**
	 * 删除数据包过滤规则
	 * @param filterList
	 */
	public void deleteFilterById(String id);

	/**
	 * 查询所有数据包过滤规则
	 * @return
	 */
	public List<Filter> getAllFilters(String analyzerId);

	/**
	 * 查询所有数据包过滤规则
	 * @return
	 */
	public List<FilterRule> getAllFiltersJson(String analyzerId);
}
